package com.ccmusic.dao.impl;

import java.util.List;

import com.ccmusic.dao.UserDao;
import com.ccmusic.entity.User;
import com.ccmusic.util.DatatablesBean;
import com.ccmusic.util.PageData;
/**
 * 
 * @Author Phantom Assassin
 * @Date 2019年3月26日 下午10:17:36
 */
public class UserDaoImpl extends BaseDao implements UserDao {

	@Override
	public boolean register(User user) {
		String sql = "insert into user(uname,pwd,usex,tel,birthday,uprofile,introduce,ulevel,ustatus,regdate) values(?,?,?,?,?,?,?,?,?,now())";
		int n = this.execute(sql, user.getUname(), user.getPwd(), user.getUsex(), user.getTel(), user.getBirthday(),
				user.getUprofile(), user.getIntroduce(),user.getUlevel(),user.getUstatus());
		if (n > 0) {
			System.out.println("daoimplde提示：增加成功");
		}
		return (n > 0 ? true : false);
	}
	
	/**
	 * 管理员修改用户信息功能实现
	 */
	@Override
	public boolean updateInfo(User user) {
		if(!(user.getUname().equals("")) && user.getUid()!=0) {
			String sql="update user set uname=?,ulevel=?,ustatus=? where uid=?";
			int result=this.execute(sql, user.getUname(),user.getUlevel(),user.getUstatus(),user.getUid());
			return result==1?true:false;
		}
	   return false;	
	}
	
	/**
	 * 用户修改用户信息功能实现
	 */
	@Override
	public boolean update(User user) {
		if(!(user.getUname().equals("")) && user.getUid()!=0) {
			String sql="update user set uname=?,usex=?,birthday=?,introduce=? where uid=?";
			int result=this.execute(sql,user.getUname(),user.getUsex(),user.getBirthday(),user.getIntroduce(),user.getUid());
			return result==1?true:false;
		}
	   return false;	
	}


	/**
	 * 用于登入界面校验用户是否存在
	 */
	@Override
	public User check(String uname) {
		String sql="select * from user where uname=?";
		List<User> list=(List<User>) this.select(sql, User.class, uname);
		if(list.size()==1) {
			User user=list.get(0);
			return user;
		}else {
			return null;
		}
		
	}

	/**
	 * 物理分页查询所有用户信息
	 */
	@Override
	public PageData<User> getAllUser(int page,int pageSize) {
		String sql="select * from user";
		PageData<User> pd=this.getPage(sql, page, pageSize, User.class);
		return pd;
	}
	
	/**
	 * 物理分页模糊查询
	 */
	@Override
	public PageData<User> FurrzySearch(int page, int pageSize, String key) {
		String sql="select * from user where uname like ?";
		PageData<User> pd=this.getPage(sql, page, pageSize, User.class, "%"+key+"%");
		return pd;
	}

	/**
	 * 逻辑分页查询所有用户信息
	 */
	@Override
	public List<User> getUserByAjaxDt() {
		String sql="select * from user";
		List<User> list=(List<User>) this.select(sql, User.class);
		return list;
	}
	
	/**
	 * 通过后台表单删除按钮获取用户id删除用户信息
	 */
	@Override
	public boolean deleteUser(int uid) {
		String sql="delete from user where uid=?";
		int result=execute(sql, uid);
		
		return result==1?true:false;
	}

	/**
	 * cyf增加注册用户方法
	 * @param user 用户
	 * @return
	 */
	@Override
	public boolean addUser(User user) {
			String sql="insert into user  values(null,?,?,?,?,?,null,null,?,?,?)";
			int n=this.execute(sql, user.getUname(),user.getPwd(),user.getUsex(),user.getTel(),user.getBirthday(),user.getUlevel(),user.getUstatus(),user.getRegdate());
			return n==1?true:false;
		
	}

	@Override
	public boolean updatePwd(int uid, String newPwd) {
		String sql="update user set pwd=? where uid=?";
		int result=this.execute(sql,newPwd,uid);
		return result==1?true:false;
	}

	
}
